package com.example.designpattern.structural.adapter;

import org.junit.Test;

public class User {

//    @Test
//    public void chargeForPhone() {
//        HomeBattery homeBattery = new HomeBattery();
//        int homeVolt = homeBattery.supply();
//        System.out.println("家庭电源提供的电压是 " + homeVolt + "V");
//
//        USBLine usbLine = new USBLine();
//        usbLine.charge(homeVolt);
//    }

    @Test
    public void chargeForPhone() {
        HomeBattery homeBattery = new HomeBattery();
        int homeVolt = homeBattery.supply();
        System.out.println("家庭电源提供的电压是 " + homeVolt + "V");

        Adapter adapter = new Adapter();
        int chargeVolt = adapter.convert(homeVolt);
        System.out.println("使用适配器将家庭电压转换成了 " + chargeVolt + "V");

        USBLine usbLine = new USBLine();
        usbLine.charge(chargeVolt);

        // 这就是适配器模式。在我们日常的开发中经常会使用到各种各样的 Adapter，都属于适配器模式的应用。
        //
        // 但适配器模式并不推荐多用。因为未雨绸缪好过亡羊补牢，如果事先能预防接口不同的问题，不匹配问题就不会发生，
        // 只有遇到源接口无法改变时，才应该考虑使用适配器。比如现代的电源插口中很多已经增加了专门的 USB 充电接口，
        // 让我们不需要再使用适配器转换接口，这又是社会的一个进步。

    }

}
